package 回溯;

import java.util.HashMap;
import java.util.Map;

/**
 * todo
 *
 * @author songZiHao
 * @version 1.0.0
 * @ClassName 下一个更大的数值平衡数2048.java
 * @createTime 2023年08月02日 19:01:00
 */
public class 下一个更大的数值平衡数2048 {
	public int nextBeautifulNumber(int n) {
		boolean tag = false;
		int num = n + 1;
		while (!tag){
			tag = judge(num);
			num++;
		}
		return num - 1;
	}

	public boolean judge(int n){
		HashMap<Integer, Integer> map = new HashMap<>();
		for (int i = 0; i < 10; i++) {
			map.put(i, 0);
		}
		String s = String.valueOf(n);
		char[] c = s.toCharArray();
		for (char i : c){
			int val = i - '0';
			map.put(val, map.get(val) + 1);
		}
		for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
			if (entry.getValue() != 0 &&  entry.getKey() != entry.getValue())
				return false;
		}
		return true;
	}
}
